This invention relates generally to the restoration of a storage device such as a hard disk drive to a previous state, and more particularly to such restoration that is substantially instantaneous.
The restoration of a storage device for a computer, such as a hard disk drive, to a previous state is critical in many situations. For example, in enterprise computing situations, testing whether installation of new software to a hard disk drive is compatible with the rest of the system means that frequently the hard disk drive must be restored to a state previous to when the installation of the new software was performed, if bugs or problems are encountered after the software has been installed. This situation also presents itself in other environments, such as the personal computer context: for example, a user installing a new version of an operating system to his or her hard disk drive may find that the operating system does not function as advertised, such that the user desires to restore the disk drive to the previous operating system.
In situations such as these, the process for restoration is generally similar. First, a back-up of the storage device is made to another storage device, such as a hard disk drive. The new software is then installed, and the system booted and tested. When a problem arises such that restoration is required, the back-up previously made is copied back to the hard drive. However, this is a less than optimal solution: backing up and restoration of a storage device can take hours in the case of a personal computer, and in enterprise contexts can literally take days if there is enough information that needs to be backed up or restored. Thus, the testing process of new software installations becomes needlessly time intensive.
For these and other reasons, there is a need for the present invention.
The invention relates generally to the restoration of a storage device such as a hard disk drive of a computer to a previous state. In one embodiment, a system includes a host device such as a processor or computer, a connection point at the host device such as a communications bus, a primary storage and a secondary storage. The primary storage has stored thereon first data, and sends this data to the host device in response to receiving a corresponding read command at the connection point. The secondary storage stores second data in response to receiving a write command including this data at the connection point, and sends the second data in response to receiving a corresponding read command at the connection point.
Thus, in at least some embodiments, a first state can be defined as the first data already on the primary storage. Subsequent (second) data sent to the connection point by the host device is written to the secondary storage. Read commands from the host device are handled either by the primary or the secondary storage, depending on whether the command relates to the first data stored on the primary storage, or the second data stored on the secondary storage. Optimally, in at least some embodiments, this process is transparent to the host device.
In another embodiment, first data can be copied to the secondary storage and their roles (as the primary,l and the secondary storage) reverse. Furthermore, in some embodiments, near instantaneous reconciliation can be achieved by updating the secondary storage during free bus cycles, as is described in the detailed description.
Therefore, when restoration is required to the first state, in at least some embodiments the system also includes a switchxe2x80x94hardware or softwarexe2x80x94that instantly restores the secondary storage to an initial state prior to which the second data was stored thereon. This means that restoration to the first state is performed substantially instantaneouslyxe2x80x94the primary storage still has stored thereon the first data, and the secondary storage stores anew.
Furthermore, when a new xe2x80x9cfirst statexe2x80x9d is desiredxe2x80x94such that this new state includes both the first data stored on the primary storage and the second data stored on the secondary storage then another switch of the system (in at least some embodiments) is included that copies the second data from the secondary storage to the primary storage, and the secondary storage is again restored to an initial state prior to which the second data was stored thereon. Thus, any new, third data sent by the host device is now stored on the secondary storage, such that restoration to the xe2x80x9cfirst statexe2x80x9d means restoration to the state where the primary storage has first and second data stored thereon.
It is noted that this application is limited to non-computer forensics applications only. Computer forensics applications are not encompassed in the scope of this patent application. As used herein, the phrase computer forensics refers to the application of computer investigation and analysis techniques in the interests of determining potential legal evidence. For example, computer data may be the evidence of a crime.
Different embodiments of the invention include systems, devices, and methods of varying scope. Other aspects, advantages and embodiments of the invention will become apparent by reference to the included drawings, and by reading the following detailed description.